package com.liu.voluntary.util;

import com.liu.voluntary.pojo.Activity;

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

public class ActivityUtils {

    /**
     * 计算活动的结束时间
     *
     * @param activity 活动对象
     * @return 结束时间
     */
    public static Date calculateEndTime(Activity activity) {
        if (activity == null || activity.getStartTime() == null || activity.getSustain() == null) {
            throw new IllegalArgumentException("活动信息不完整");
        }

        // 将 startTime 转换为 LocalDateTime
        LocalDateTime startTime = activity.getStartTime().toInstant()
                .atZone(ZoneId.systemDefault())
                .toLocalDateTime();

        // 创建 Duration 对象表示持续时间
        Duration duration = Duration.ofHours(activity.getSustain());

        // 计算结束时间
        LocalDateTime endTime = startTime.plus(duration);

        // 将 LocalDateTime 转换回 Date
        return Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant());
    }
}
